A computer system is a collection of computer resources, such as processors, adapters, memory and the like, which work together to perform a specific task, and is well known in the art. The computer system may be located in a single computer, such as a server, or in a plurality of computers, such as computer network. System administrators (hereinafter, administrators) are people who setup and manage computer systems. One of the tools used by administrators to increase the performance of a computer system is physical partitioning. Administrators physically partition a managed system by dedicating buses and predefined physical modules within the system to assist in creating the smaller partitioned systems, referred to as virtual systems. Each virtual system in a managed system appears to the end user as a completely separate system. In addition, virtual systems improve administrative flexibility and application performance.
A method used by administrators to increase system performance in a managed system is logical partitioning. Logical partitioning is a process which creates logical partitions within the managed system. Logical partitioning is distinct from physical partitioning in that there are no physically separated buses, memory, or processors in a logically partitioned system. Instead, the virtual systems are separated only by the system software. Similar to the physically partitioned system, each individual virtual system created by logical partitioning appears to the end user as a completely separate system. One advantage of logical partitioning is that logical partitioning permits much finer granularity in virtual system creation, such that any processor, memory, or adapter may be easily added or removed from a virtual system. Logical partitioning is generally controlled by a hardware management console outside of the managed system. The hardware management console controls the division of the managed system into the virtual systems and, if necessary, the reallocation of resources within the various virtual systems comprising the logically portioned environment.
When the reallocation occurs without having to reboot the managed system, the logical partitioning is known as dynamic logical partitioning. The prior art methods of dynamic reallocation require the system administrator to recognize the need for reallocation, and then to manually reallocate the resources. For example, in a system comprising a first virtual system having eight central processing units (CPUs) and a second virtual system having eight CPUs, the system administrator may observe that during a peak processing period, the first virtual system is running at 100% CPU utilization and the second virtual system is running at 20% CPU utilization. Upon observing the disparity in CPU utilization, the administrator may manually move one or more processors from the second virtual system to the first virtual system to improve system performance during the peak processing period. Therefore, a need exists for a system and method to automate the control and movement of resources in a dynamic logical partitioning environment.
The prior art methods of dynamic reallocation require the system administrator to decide which donors to take resources from and which recipients to give resources to and then to implement the decision by manually moving resources. The decision on what resources to move can be particularly difficult when there is only one donor and a plurality of recipients or there is only one recipient and a plurality of donors. The administrator may inadvertently create virtual systems with demands so high that the system never donates any resources. Likewise, an administrator may inadvertently create virtual systems with requirements so low that they never receive any resources. In addition, the priority of a virtual system may dictate that it must have a high demand (if a high priority system) or a low requirement (if a low priority system). However, it is generally not considered preferable for a managed system to contain donor-only or recipient-only virtual systems because resources will either gravitate towards or away from these systems and the administrator will have to make continued decisions and manual resource reassignments. Therefore, a need exists for a method of determining whether a managed system has donor-only or recipient-only virtual systems and identifying methods for eliminating donor-only and recipient-only virtual systems.
Another way in which the administrator may have to make continued decisions is when the administrator inadvertently creates a cyclical reallocation condition known as managed system instability. For example, in a managed system containing two virtual systems, the administrator may identify that the first virtual system is heavily loaded while the second virtual system is not. Resources are then transferred from the second virtual system to the first virtual system. The reduction in resources on the second virtual system increases the workload on the second virtual system, while the increase in resources on the first virtual system decreases the workload on the first virtual system. When the next resource reallocation cycle occurs and the need for resources at the second virtual system is recognized, the resources are transferred from the first virtual system back to the second virtual system. The process of resource reallocation from one virtual system to another may cycle back and forth indefinitely if the administrator does not recognize the cyclic nature of the reallocation.
When the administrator has to make too many decisions and reassignments, the overly frequent resource reallocation drives down the overall efficiency and performance, of the managed system because the resources spend more time in reallocation mode than in actual use. The administrator can decrease the amount of reallocation to increase the stability; however the decrease in resource reallocation may also lead to decreased efficiency and performance of the managed system. Consequently, a need exists for an apparatus and method of determining a proper balance between reciprocity and stabilization of resource reallocation amongst virtual systems in the logically partitioned environment of a managed system.
The need for automation within the reallocation process has been addressed by the prior art. U.S. Pat. No. 4,603,382 (the '382 patent) entitled “Dynamic Buffer Reallocation” discloses a method for dynamically reallocating data storage segments within a storage device. The '382 patent monitors the properties of the data storage device and reallocates the buffer segments when they exceed a predefined threshold. U.S. Pat. No. 5,875,464 (the '464 patent) entitled “Computer System with Private and Shared Partitions in Cache” discloses a partitioned cache memory buffer which monitors the allocation of tasks. The memory buffer of the '464 patent reallocates the tasks when necessary. U.S. Pat. No. 5,978,583 (the '583 patent) discloses a method of reallocating applications during the course of their execution. The method disclosed in the '583 patent monitors the applications and redistributes the applications when necessary based on various criteria. U.S. Pat. No. 6,366,945 (the '945 patent) entitled “Flexible Dynamic Partitioning of Resources in a Cluster Computing Environment” discloses a method for dynamic partitioning of a computer network. The method of the '945 patent monitors the resources within the virtual networks and moves resources among networks when required. However, the '945 patent does not disclose a method for dynamic logical partitioning of a managed network. Consequently, what is needed beyond the '382, '464, '583, and '945 patents is a method and system for dynamic logical partitioning of a managed system.
Therefore, a need exists for an efficient automated method to optimize the allocation of resources within a virtual system based on the ability of the donor systems to donate resources and the need of the recipient system to receive resources.